package com.itheima.d5_proxy2;

/**
 * 用户业务实现类（面向接口编程）
 *
 * 多个方法里面都有这些时间统计的相同代码，都是与业务无关的，就好比这个接口的实现类不该做这些统计时间的事情
 *  可以用代理技术为用户对象生成一个代理，把这些事情转移给代理，所以先创建一个代理工具类ProxyUtil
 *long startTime = System.currentTimeMillis();
 *long endTime = System.currentTimeMillis();
 *System.out.println("login方法执行耗时： " + (endTime-startTime)/1000.0 + "s");
 *写了代理后，业务类中就不用上面这些乱七八糟的代码了
 */
public class UserServiceImpl implements UserService{
    @Override
    public void login(String loginName, String passWord) throws Exception {
        //long startTime = System.currentTimeMillis();

        if("admin".equals(loginName) && "123456".equals(passWord)){
            System.out.println("您登录成功，欢迎光临本系统~");
        }else {
            System.out.println("您登录失败，用户名或密码错误~");
        }
        Thread.sleep(1000);

        //long endTime = System.currentTimeMillis();
        //System.out.println("login方法执行耗时： " + (endTime-startTime)/1000.0 + "s");
    }

    @Override
    public void deleteUsers() throws Exception{
        //long startTime = System.currentTimeMillis();

        System.out.println("成功删除了1万个用户~");
        Thread.sleep(1500);

        //long endTime = System.currentTimeMillis();
        //System.out.println("deleteUsers方法执行耗时： " + (endTime-startTime)/1000.0 + "s");
    }

    @Override
    public String[] selectUsers() throws Exception{
        //long startTime = System.currentTimeMillis();

        System.out.println("查询出了3个用户");
        String[] names = {"张全蛋", "李二狗", "牛爱花"};
        Thread.sleep(500);

        //long endTime = System.currentTimeMillis();
        //System.out.println("selectUsers方法执行耗时： " + (endTime-startTime)/1000.0 + "s");
        return names;
    }
}
